package sismed.dados.hibernate.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import sismed.dao.IDAOMensagem;
import sismed.hibernate.util.HibernateUtil;
import sismed.negocio.modelo.Mensagem;

public class DAOHibernateMensagem implements IDAOMensagem
{
	private Session sessaoHibernate;
	
	public DAOHibernateMensagem()
	{
		super();		
		sessaoHibernate = HibernateUtil.getSession();
	}

	public boolean enviar(Mensagem mensagem) 
	{

		Transaction t = sessaoHibernate.beginTransaction();
		
		try
		{
			sessaoHibernate.merge(mensagem);
			t.commit();			
		}
		catch (Exception e) 
		{
			t.rollback();
		}
		finally
		{
			sessaoHibernate.close();
		}
		
		return true;
	}

	public Mensagem recuperar(String idMensagem) 
	{
		Query query = sessaoHibernate.createQuery("from Mensagem where id='"+idMensagem+"'");
		
		return (Mensagem)query.uniqueResult();
	}

	public List<Mensagem> recuperarLista(String idMedico) 
	{
		int id = Integer.parseInt(idMedico);
		Query query = sessaoHibernate.createQuery("from Mensagem where destino.id="+id+"");
		
		return query.list();
	}

}
